import axios from '@/libs/api.request'
import qs from 'qs'

/**
 * @Description: 获取所有学院
 * @Params: {}
 * @Return: { Object } 学院列表
 * @Author: Jackie
 * @Date: 2019/1/25 20:15
 */
export const getInstituteList = () => {
  return axios.request({
    url: '/labm/getInstitute',
    method: 'GET'
  })
}

/**
 * @Description: 获取实验室列表
 * @Params: { Object } filter 检索条件，pageBuilder 分页条件
 * @Return: { Object } 实验室列表
 * @Author: Jackie
 * @Date: 2019/1/29 1:53
 */
export const getLabList = (filter, pageBuilder) => {
  let labDTO = {...filter}
  labDTO.institutes = labDTO.institutes ? [labDTO.institutes] : []
  labDTO.status = labDTO.status === 'all' ? '' : labDTO.status
  labDTO.pageBuilder = {...pageBuilder}
  labDTO.pageBuilder.order = pageBuilder.order.filter(item => {
    return item[Object.keys(item)[0]] !== 'normal'
  })
  return axios.request({
    url: '/labm/lab/getAll',
    method: 'POST',
    data: JSON.stringify(labDTO)
  })
}

/**
 * @Description: 修改实验室状态
 * @Params: { Array, String } ids 需要修改状态的实验室id，status 状态
 * @Return: { Object } 修改实验室状态结果
 * @Author: Jackie
 * @Date: 2019/2/18 13:41
 */
export const updateLabStatus = (ids, status) => {
  return axios.request({
    url: '/labm/lab/updateStatus',
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    data: qs.stringify({
      ids: ids,
      status: status
    }, {
      arrayFormat: 'brackets'
    })
  })
}

/**
 * @author Dinosaur
 * @microservice information
 * @description 获得学院所有教师
 * @param { String } institue 学院
 * @returns 教师列表
 */
export const getTeacherList = (institute) => {
  return axios.request({
    url: '/info/tea/getTeachersByInstitute',
    method: 'GET',
    params: {
      institute: institute || ''
    }
  })
}

/**
 * @author Dinosaur
 * @microservice labmanager
 * @description 提交实验室 新增/修改
 * @param {String} data
 * @returns 是否 添加/修改 成功
 */
export const submitSaveLab = (data) => {
  return axios.request({
    url: '/labm/lab/save',
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    data: data
  })
}

/**
 * @author Dinosaur
 * @microservice labmanager
 * @description 根据实验室ID获取实验室详细信息
 * @returns {Object} 实验室详细信息
 */
export const getLabById = (id) => {
  return axios.request({
    url: '/labm/lab/' + id || '',
    method: 'GET'
  })
}
